/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */

#ifndef __PICTUREFORMAT_DECOMPRESSORPNG_H__
#define __PICTUREFORMAT_DECOMPRESSORPNG_H__

#include "Decompressor.h"
#include <NoCopy.h>

namespace liba
{
namespace pictureformat
{
		
class DecompressorPng : public Decompressor, private Nocopy
{
private:
	int      _imageWidth;
	int      _imageHeight;
	int      _bitDepth;
	int      _channels;
	int      _scanLine;
	char   * _unpackedData;
	Format   _desiredFormat;
public:
	DecompressorPng(const void * data, int size);
	virtual ~DecompressorPng();
	virtual int get_width(int frame = 0) const;
	virtual int get_height(int frame = 0) const;
	virtual Format get_best_format() const;
	virtual int get_frame_count() const;
	virtual void reset(Format format, int frame = 0);
	virtual void unpack_scanline(void * destination);
	virtual void skip_scanline(int count);
};
	
}
}

#endif